package com.feihao.zhou.demo02;

import java.util.ArrayList;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;

/**
 * 创建ArrayList集合，添加字符串前面是姓名，后面是年龄
 * "张三，23"
 * "西撒，28"
 * "小红，20"
 * <p>
 * 保留年龄大于24的人，收集到map集合中：
 */
public class StreamToMap {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("张三,23");
        list.add("西撒,28");
        list.add("qq,30");
        list.add("dd,38");
        list.add("dd,38");
        list.add("小红,20");
        list.add("姚红,20");


        //首先将list转化为一个流：筛选年龄》24的人，再转为map
        Map<String, String> map = list.stream().filter(s -> {//过滤年龄大于24岁的人
            String[] split = s.split(",");
            int i = Integer.parseInt(split[1]);
            return i >= 24;
        }).distinct().collect(Collectors.toMap(
                //获取键：
                (String s) -> {
                    return s.split(",")[0];
                },
                //获取值：
                (String s) -> {
                    return s.split(",")[1];
                }
        ));

        Set<Map.Entry<String, String>> entries = map.entrySet();
        for (Map.Entry<String, String> entry : entries) {
            System.out.println(entry.getKey() + "=" + entry.getValue());
        }
    }
}
